<?php

class Tipo {

    private $idTipo;
    private $descTipo;
    //variaveis internas
    private $bd; //conexão com o banco

    public function __construct() {
        $this->bd = new bd();
    }

    public function __get($key) {
        return $this->$key;
    }

    //método de retorno de valores do objeto
    public function __set($key, $value) {
        $this->$key = $value;
    }

    //METODOS
    //BANCO DE DADOS
    public function inserir() {

        $sql = "INSERT INTO tipo (desctipo)
                VALUES ('$this->descTipo')";

        $retorno = pg_query($sql);

        return $retorno;
    }

// --------------------------------------------------------------------------
    public function listar($complemento = "") {
        $sql = "SELECT * FROM tipo " . $complemento;

        $resultado = pg_query($sql);
        $retorno = NULL;

        //percorre os registros
        while ($reg = pg_fetch_assoc($resultado)) {
            //transforma em objetos categoria
            $obj = new Tipo();
            $obj->idTipo = $reg["idtipo"];
            $obj->descTipo = $reg["desctipo"];

            //adiciona a variavel de retorno
            $retorno[] = $obj;
        }
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function excluir() {

        $sql = "UPDATE tipo SET ativo=0  WHERE idtipo=$this->idTipo";
        $retorno = pg_query($sql);
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function atualizar() {
        $retorno = false;                                 // nome dos campos
        $sql = "UPDATE tipo SET
                     desctipo       ='$this->descTipo'
                     where idtipo   ='$this->idTipo'";
        $retorno = pg_query($sql);

        return $retorno;
    }

// --------------------------------------------------------------------------
    public function retornarUnico() {
        $sql = "SELECT * FROM tipo WHERE ativo=1 AND idtipo='$this->idTipo'";

        $resultado = pg_query($sql);
        $retorno = NULL;

        $req = pg_fetch_assoc($resultado);
        if ($req == true) {
            //$obj = new Tipo();
            //$obj->idTipo = $req["idtipo"];
            //$obj->descTipo = $req["desctipo"];
            $this->idTipo = $req["idtipo"];
            $this->descTipo = $req["desctipo"];
        }
    }

// --------------------------------------------------------------------------
    public function listarJoin($complemento = "") {

        $sql = "SELECT tipo.*
        FROM tipo
         " . $complemento;


        $resultado = pg_query($sql);
        $retorno = NULL;

        //percorre os registros
        while ($reg = pg_fetch_assoc($resultado)) {
            //transforma em objetos categoria
            $obj = new Tipo();
            $obj->idTipo = $reg["idtipo"];
            $obj->descTipo = $reg["desctipo"];

            //adiciona a variavel de retorno
            $retorno[] = $obj;
        }
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function validaExclusao($id) {
        $sql = "SELECT usuario.* "
                . " FROM usuario"
                . " JOIN tipo ON usuario.tipo = tipo.idtipo"
                . " WHERE tipo.ativo=1 AND tipo.idtipo = $id;";

        $result = pg_query($sql);

        $retorno = pg_num_rows($result);

        return $retorno;
    }

}
